package com.yunji.order.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunji.common.annotation.Excel;
import com.yunji.common.base.BaseDO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Package com.yunji.order.domain
 * FileName:	Payout.java
 * Copyright:	Copyright © 2024 云集互联 All Rights Reserved
 * Company:		云集互联
 * @version: 1.0
 * @since: JDK 1.8.0_202
 * Create at:   2024-04-21 21:05:00
 * Description:
 * 转账信息
 * Modification History:
 * Author					Date					Version         Description
 * -------------------------------------------------------------------------------------
 * HuaAo0803@163.com	2024-04-21 21:05:00     1.0             1.0 Version
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "t_payout", description = "转账信息")
@Data
@TableName("t_payout")
public class PayoutDO extends BaseDO implements Serializable {
    private static final long serialVersionUID = 5090148480138712046L;
    @ApiModelProperty("转账ID")
    @TableId(type = IdType.AUTO)
    private Long payoutId;

    @Excel(name = "提现流水号", width = 30)
    @ApiModelProperty("提现流水号")
    @Length(message = "提现流水号不能超过{max}个字节", max = 20)
    private String payoutCode;

    @Excel(name = "第三方支付流水号", width = 30)
    @ApiModelProperty("第三方支付流水号")
    private String payCode;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "第三方支付时间", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 20)
    @ApiModelProperty("第三方支付时间")
    private Date payTime;

    @ApiModelProperty("所属ID")
    private Long belongId;

    @ApiModelProperty("申请人ID")
    private Long userId;

    @Excel(name = "申请人名称", width = 10)
    @ApiModelProperty("申请人名称")
    private String userName;

    @Excel(name = "真实姓名", width = 10)
    @ApiModelProperty("真实姓名")
    private String realName;

    @Excel(name = "提现姓名", width = 10)
    @ApiModelProperty("提现姓名")
    private String payoutRealName;

    @Excel(name = "提现账户", width = 10)
    @ApiModelProperty("提现账户")
    private String payoutAccount;

    @Excel(name = "用户类型", width = 5)
    @ApiModelProperty("用户类型")
    private String userType;

    @Excel(name = "申请人电话", width = 15)
    @ApiModelProperty("申请人电话")
    @Length(message = "申请人手机号不能超过{max}个字符", max = 11)
    private String phone;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "申请时间", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 20)
    @ApiModelProperty("申请时间")
    private Date applyTime;

    @Excel(name = "申请状态", readConverterExp = "1=待审核,2=待转账,3=已驳回,4=提现成功,5=提现失败,6=已关闭", width = 10)
    @ApiModelProperty("申请状态 (1:待审核;2:待转账;3:已驳回;4:提现成功;5:提现失败;6:已关闭)")
    private Integer applyStatus;

    @Excel(name = "申请金额", width = 5)
    @ApiModelProperty("申请金额")
    private BigDecimal amount;

    @Excel(name = "提现渠道 (1、微信支付; 2、阿里支付)", width = 5)
    @ApiModelProperty("提现渠道 (1、微信支付; 2、阿里支付)")
    private Integer channel;

    @ApiModelProperty("审核人ID")
    private Long auditor;

    @ApiModelProperty("审核人名称")
    @Excel(name = "审核人名称", width = 15)
    private String auditName;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 20)
    @ApiModelProperty("审核时间")
    private Date auditTime;

    @Excel(name = "审核备注", width = 15)
    @ApiModelProperty("审核备注")
    private String auditRemark;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("关闭时间")
    private Date closedTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "完成时间", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 20)
    @ApiModelProperty("完成时间")
    private Date finishTime;
}